Python值的判断与比较: np.nan, None
None
1 | type(None) |
np.nan
1 | type(np.nan) |
np.nan 与 None
1 | None == np.nan |
与数字的比较
1 | np.nan > 10 |
总结
- 【Python2和Python3表现相同】
np.nan 只有在np.nan != np.nan
或者np.nan is np.nan
时为True, 其他情况下和数字比较(包括和自身)都为False - 【Python2和Python3表现相异】
Python3与Python2在直接使用np.nan时表现正常,但是当涉及到DataFrame的NaN时表现不同
特殊情况
DataFrame
中的NaN
与数字比较时会出现有时候为True
有时候为False
的情况
- 这种情况出现在Python3中,当NaN 与数字比较时
- 此时对于列属性类型为数值型,那么返回False
- 否则返回True
- Python2中NaN和数字的就是np.nan和数字比较的结果,都为False
Python2与Python3比较
- 代码示例:
1 | # Python3: |
1 | # Python2: |